1. Statement of the Technical Field
The present invention relates to the field of collaborative computing and more particularly to a model that facilitates collaborative computing system development by allowing the integration of third party applications.
2. Description of the Related Art
Collaborative computing provides a means for users to pool their strengths and experiences to achieve a common goal. For example, a common goal may be an educational objective, the completion of a software development project or even creation and use of a system to manage human resources. A collaborative computing environment is defined by (1) a particular context, i.e. the objective of the environment, (2) membership, i.e., the participants in the environment and their roles, and (3) and tools and resources used in the context. Roles are names given to the people in the environment which dictate access to the resources and tools within the environment as well as define the behavior of the community members.
Collaborative computing environments are customized to meet the developers' and users' needs. For example customized collaborative computing environments such as team workspaces, emeetings, virtual classrooms and communities are known. Each of these types of environments is implemented using shared resources as a building block to create the environment. Shared resources for all environments have general characteristics such as a purpose/title, and the premise that they can be created, deleted, cloned, renamed, expired, archived and restored, etc. Shared resources may also be customized to fulfill the objectives of the environment. For example, virtual classrooms employ the general characteristics of the shared resources but further specialize the shared resources in the areas of defining membership roles, e.g., teacher, student, etc., the definition of content, e.g., courses, and provide a shared resource directory customized in the form of a list of courses.
Customized collaborative computing environments must each be developed and configured individually, that is, each instance of a collaborative computing environment can only be of one customized type, e.g., a virtual classroom. As such, present systems require that each separate computing environment be developed from the ground up, even though the environments may have the need for common business processes (tools and resources), e.g., stock quotations, web conferencing interface, news, etc. Put another way, known collaborative computing systems do not provide a way to create an environment in which arbitrary business process objects can be placed and customized to fit the needs of the desired environment. The result is collaborative computing environments which are developed as customized applications and not are readily usable as way to build future environments.
This problem is further exacerbated by the need to integrate collaborative computing environments based on two different products and/or architectures. For example, a company may be implementing a portal J2EE-based (Java 2 Enterprise Edition) collaborative computing product but still have a need access a collaborative computing product based on another technology such as LOTUS DOMINO. It is desirable to have a system and method to integrate the two technologies in a manner which is seamless to the end user and efficient and practical for the system development and deployment team.
A possible solution to the integration problem is to develop software code to migrate data from the data store of one product/technology for user with the other. While this method does create an integrated single user experience and allows use of the features of the product into which the data is migrated, this type of migration software code requires customized software code which necessitates the need for experienced software developers and is therefore costly and time consuming to develop. In addition, feature parity is required between the two technologies/products.
Another possible solution is to provide “on the glass” coexistence by having a portlet in one collaborative computing environment to provide access to the other. For example, a portlet in the J2EE application can be implemented to provide access to the DOMINO based application (the third party application in this case). While this arrangement does not take a lengthy period to develop, it does create (or leave) two environments for the end users; the J2EE-based world and the DOMINO world, for example. In addition, this arrangement does not allow use of the features of the J2EE environment within the third party application portlet.
It is desirable to have a method and system which provides a collaborative computing environment framework that can be specialized into collaborative computing environment applications in a manner which allows integration of third party applications into the environment such that the integration is cost effective, quick to develop and allows the features of the environment to be used with the third party application.